﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Librerias;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;

//Autores: Arturo Serna y Adolfo Rico

namespace eCampus
{
    public partial class FormAsignaturaCrear1 : Form
    {
        ENAsignatura datos = new ENAsignatura();
        bool esModificar;
        int modoAcceso = 0;
       

       /// <summary>
       /// Constructor para crear 
       /// </summary>
        public FormAsignaturaCrear1()
        {
            esModificar = false;
            InitializeComponent();
        }
        
        /// <summary>
        /// Constructor para modificar 
        /// </summary>
        /// <param name="asig"></param>
        /// <param name="modoAccesoNuevo"></param>
        public FormAsignaturaCrear1(ENAsignatura asig, int modoAccesoNuevo)
        {

            esModificar = true;
            modoAcceso = modoAccesoNuevo;
            datos = asig;

            InitializeComponent();
        }

        /// <summary>
        /// Valida los datos de crear 
        /// </summary>
        /// <returns></returns>
        private bool DatosValidos()
        {
            if (new ENAsignatura().BuscarCodigo(tbCodigo.Text))
            {
                MessageBox.Show("La asignatura ya existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                errorProviderNombre.Clear();
                errorProviderCreditos.Clear();
                errorProviderCuatrimestre.Clear();
                return false;
            }

            return true && DatosValidosMod();
        }

        /// <summary>
        /// Valida los datos de modificar
        /// </summary>
        /// <returns></returns>
        private bool DatosValidosMod()
        {
            ///VIGILO NOMBRE
            if (tbNombre.Text == "")
            {
                errorProviderNombre.SetError(tbNombre, "No puede estar vacío");
                return false;
            }
            else if (tbCreditos.Text == "")
            {
                errorProviderCreditos.SetError(tbCreditos, "No puede ser vacio");
                return false;
            }
            else if (cbCuatrimestre.SelectedIndex.Equals(-1))
            {
                errorProviderCuatrimestre.SetError(cbCuatrimestre, "Seleccione Cuatrimestre");
                return false;
            }
            return true;
        }

        /// <summary>
        /// Alta o modificación de asignatura
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btAlta_Click(object sender, EventArgs e)
        { 
            ENAsignatura a = new ENAsignatura();
            a.Nombre = tbNombre.Text;
            a.Codigo = tbCodigo.Text;

            //Comprueba créditos
            bool todoBien = true;
            try
            {
                a.Creditos = float.Parse(tbCreditos.Text.Replace(".",",").Replace("'",",").Replace("`",","));
            }
            catch (Exception)
            {
                errorProviderCreditos.SetError(tbCreditos, " Formato: dd,dd    Ejemplos: 4,5  5");
                todoBien = false;
            }

            if (todoBien)
            {

                a.Cuatrimestre = int.Parse(cbCuatrimestre.SelectedIndex.ToString()) + 1;

                try
                {
                    if (!esModificar)
                    {
                        if (DatosValidos())
                        {
                            a.CrearAsignatura();
                            Close();
                        }
                    }
                    else
                    {
                        if (DatosValidosMod())
                        {
                            a.ModificarAsignatura();
                            Close();
                        }
                    }
                }
                catch (FormatException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        /// <summary>
        /// Resetea los textbox y combobox
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btLimpiarCampos_Click(object sender, EventArgs e)
        {
            tbNombre.Text = string.Empty;
            tbCreditos.Text = string.Empty;
            cbCuatrimestre.SelectedItem = -1;
        }
        /// <summary>
        /// Caarga cuando se abre formulario
        /// </summary>
        /// <param name="sender">FormAsignaturaCrear1</param>
        /// <param name="e">Load</param>
        private void FormAsignaturaCrear1_Load(object sender, EventArgs e)
        {
            if (esModificar)
            {
                tbNombre.Text = datos.Nombre;
                tbCreditos.Text = datos.Creditos.ToString();
                tbCodigo.Text = datos.Codigo;
                tbCodigo.ReadOnly = true;
                cbCuatrimestre.SelectedIndex = datos.Cuatrimestre - 1;
                btAlta.Text = "Modificar";
            }
        }



                
    }
}                     

